# [钛妹]:听说Python还有filter和reduce神器？它们和map到底有什么不同呢？

# 先看filter的垃圾分类超能力
原始数据 = range(-5, 5)
print("原始数据:", list(原始数据))

# [钛哥]:filter就像智能分拣机，只保留符合条件的元素
负数集合 = list(filter(lambda x: x < 0, 原始数据))
print("\n过滤后的负数:", 负数集合)

# [钛妹]:那用普通循环怎么写？感觉filter更优雅呢！
普通过滤 = [x for x in 原始数据 if x%2 == 0]
print("传统偶数过滤:", 普通过滤)

# [钛哥]:再看reduce的快递打包魔法！需要先导入工具包
from functools import reduce

# [钛妹]:快用reduce算个阶乘试试！
数字序列 = [1, 2, 3, 4]
阶乘结果 = reduce(lambda x,y: x*y, 数字序列)
print("\n4的阶乘:", 阶乘结果)

# [钛哥]:对比普通循环写法，reduce是不是更简洁？
普通累加 = 1
for num in 数字序列:
    普通累加 *= num
print("循环计算结果:", 普通累加)

# [钛妹]:组合使用会怎样？比如先过滤再计算乘积
混合运算 = reduce(
    lambda a,b: a*b,
    filter(lambda x: x>2, [1,2,3,4])
)
print("\n过滤大数后乘积:", 混合运算)

# [钛妹]:实战时间！实时监控温度传感器数据
传感器数据 = [23.5, 28.1, 25.0, 30.2, 18.8]
高温警报 = list(filter(lambda t: t > 28, 传感器数据))
平均温度 = reduce(lambda a,b: a+b, 传感器数据) / len(传感器数据)

print("\n高温警报数据:", 高温警报)
print("平均温度:", round(平均温度, 1))

# [钛哥]:记住函数式编程三剑客：
# map：逐个变形  filter：智能筛选  reduce：滚动计算
# [钛妹]:明白啦！map是变形金刚，filter是质检员，reduce是打包机器人！

print("\n人脑的创造力是机器无法匹敌的！每天进步一点点！点赞关注不迷路！")